﻿using System;

using System.Collections.Generic;
using System.Text;

namespace Silvermoon.Animations
{
    [Flags]
    public enum TransitionMode
    {
        None = 0,
        /// <summary>
        /// performs an animation that shows the control.
        /// </summary>
        Show = 1,

        /// <summary>
        /// performs an animation that hides the control.
        /// </summary>
        Hide = 2,

        SwipeToLeft = 4,
        SwipeToRight = 8,
        SwipeUp = 0x10,
        SwipeDown = 0x20,
        Fade = 0x40,
        StretchHorizontal = 0x80,
        StretchVertical = 0x100,
        Bounced = 0x200,
        Explode = 0x400,

        Zoom = StretchHorizontal | StretchVertical,

        /// <summary>
        /// Performs a tv switch of animation, if you can remember the effect of an old crt monitor ;-)
        /// </summary>
        SwitchOff = 0x802,


        // Composite custom modes:

        SwipeInFromLeft = SwipeToLeft | Show,
        SwipeOutToLeft = SwipeToLeft | Hide,

        SwipeInFromRight = SwipeToRight | Show,
        SwipeOutToRight = SwipeToRight | Hide,

        SwipeInFromTop = SwipeUp | Show,
        SwipeOutToTop = SwipeUp | Hide,

        SwipeInFromBottom = SwipeDown | Show,
        SwipeOutToBottom = SwipeDown | Hide,

        FadeIn = Fade | Show,
        FadeOut = Fade | Hide,

        ZoomIn = Zoom | Show,
        ZoomOut = Zoom | Hide

    }
}
